package CapaDatos.listas;

import CapaDatos.Habitacion;
import java.util.TreeSet;
import java.util.Comparator;
import java.util.Iterator;

public class ListaHabitaciones
{
    private TreeSet <Habitacion> lista;
    private Comparator comparator;

    public ListaHabitaciones()
    {
        comparator = new CompararHabitaciones();
        lista = new TreeSet(comparator);
    }

    public boolean agregar (Habitacion objeto, boolean asignarID) {
        if (asignarID)
            objeto.setID(obtenerProximoID());

        return lista.add(objeto);
    }

    public boolean eliminar (String ID) {
        Habitacion habitacion = buscar(ID);

        if (habitacion == null)
            return false;

        return lista.remove(habitacion);
    }

    public Habitacion buscar(String ID) {
        Habitacion auxiliar = null;
        Iterator iterator = lista.iterator();

        while (iterator.hasNext())
        {
            auxiliar = (Habitacion) iterator.next();

            if (auxiliar.getID().equals(ID))
                return auxiliar;
        }

        return null;
    }

    public Habitacion[] array() {
        return lista.toArray(new Habitacion[0]);
    }

    public String obtenerProximoID () {
        Habitacion habitacion = lista.last();

        if (habitacion == null)
            return "1";

        int ID = Integer.valueOf(habitacion.getID()) + 1;
        return String.valueOf(ID);
    }
}
